Networks such as Ethernet and Token ring networks, carry information using packets of data. Each data packet is organized in accordance with a specific protocol and contains the data to be transmitted as well as the information (e.g., source and destination addresses) required to enable networking devices to properly route the data packet to its destination. Measuring network performance (e.g., transmission speed, response time and band-width) for data sent over a network requires tracking of the data carried by the network.
Existing systems for tracking network traffic rely on time stamping of network data packets. When a data packet traverses a given network node, the network node records the time of the traversal in the data packet. Some network devices store the time of traversal in a separate location and other devices store the time of traversal in the data packet, itself, before transmitting the data packet to other network nodes. When another network node receives the data packet, it is able to read the time stamp recorded in the data packet, or access the storage location to retrieve previously stored time data, and compare the time stamp or time data to a time reference, enabling the system to measure network data handling capabilities.
Although this time stamping technique is useful for tracking network data packets, it still faces a significant limitation when the load of data to be transmitted is high (e.g., in high-speed networks). Networking devices handling the data usually carry out multiple processing tasks on the data packets (e.g., time stamp verification and error checking). The error, relative to the correct time reference, increases as the amount of processing time increases. Furthermore, the error introduced by the processing is largely unpredictable.
Therefore, there is a need for time tracking methods that allow networking devices to maximize the accuracy of time stamping data in networks.